﻿/**
 * jQuery EasyUI 1.3.1
 * 
 * Licensed under the GPL terms To use it on other terms please contact us
 * 
 * Copyright(c) 2009-2012 stworthy [ stworthy@gmail.com ]
 * 
 */
(function($) {
	function _1(a, o) {
		for (var i = 0, _2 = a.length; i < _2; i++) {
			if (a[i] == o) {
				return i;
			}
		}
		return -1;
	};
	function _3(a, o) {
		var _4 = _1(a, o);
		if (_4 != -1) {
			a.splice(_4, 1);
		}
	};
	function _5(_6) {
		var _7 = $.data(_6, "treegrid").options;
		$(_6).datagrid($.extend({}, _7, {
					url : null,
					loader : function() {
						return false;
					},
					onLoadSuccess : function() {
					},
					onResizeColumn : function(_8, _9) {
						_21(_6);
						_7.onResizeColumn.call(_6, _8, _9);
					},
					onSortColumn : function(_a, _b) {
						_7.sortName = _a;
						_7.sortOrder = _b;
						if (_7.remoteSort) {
							_20(_6);
						} else {
							var _c = $(_6).treegrid("getData");
							_3a(_6, 0, _c);
						}
						_7.onSortColumn.call(_6, _a, _b);
					},
					onBeforeEdit : function(_d, _e) {
						if (_7.onBeforeEdit.call(_6, _e) == false) {
							return false;
						}
					},
					onAfterEdit : function(_f, row, _10) {
						_7.onAfterEdit.call(_6, row, _10);
					},
					onCancelEdit : function(_11, row) {
						_7.onCancelEdit.call(_6, row);
					},
					onSelect : function(_12) {
						_7.onSelect.call(_6, _41(_6, _12));
					},
					onUnselect : function(_13) {
						_7.onUnselect.call(_6, _41(_6, _13));
					},
					onSelectAll : function() {
						_7.onSelectAll.call(_6, $.data(_6, "treegrid").data);
					},
					onUnselectAll : function() {
						_7.onUnselectAll.call(_6, $.data(_6, "treegrid").data);
					},
					onCheck : function(_14) {
						_7.onCheck.call(_6, _41(_6, _14));
					},
					onUncheck : function(_15) {
						_7.onUncheck.call(_6, _41(_6, _15));
					},
					onCheckAll : function() {
						_7.onCheckAll.call(_6, $.data(_6, "treegrid").data);
					},
					onUncheckAll : function() {
						_7.onUncheckAll.call(_6, $.data(_6, "treegrid").data);
					},
					onClickRow : function(_16) {
						_7.onClickRow.call(_6, _41(_6, _16));
					},
					onDblClickRow : function(_17) {
						_7.onDblClickRow.call(_6, _41(_6, _17));
					},
					onClickCell : function(_18, _19) {
						_7.onClickCell.call(_6, _19, _41(_6, _18));
					},
					onDblClickCell : function(_1a, _1b) {
						_7.onDblClickCell.call(_6, _1b, _41(_6, _1a));
					},
					onRowContextMenu : function(e, _1c) {
						_7.onContextMenu.call(_6, e, _41(_6, _1c));
					}
				}));
		if (_7.pagination) {
			var _1d = $(_6).datagrid("getPager");
			_1d.pagination({
						pageNumber : _7.pageNumber,
						pageSize : _7.pageSize,
						pageList : _7.pageList,
						onSelectPage : function(_1e, _1f) {
							_7.pageNumber = _1e;
							_7.pageSize = _1f;
							_20(_6);
						}
					});
			_7.pageSize = _1d.pagination("options").pageSize;
		}
	};
	function _21(_22, _23) {
		var _24 = $.data(_22, "datagrid").options;
		var dc = $.data(_22, "datagrid").dc;
		if (!dc.body1.is(":empty") && (!_24.nowrap || _24.autoRowHeight)) {
			if (_23 != undefined) {
				var _25 = _26(_22, _23);
				for (var i = 0; i < _25.length; i++) {
					_27(_25[i][_24.idField]);
				}
			}
		}
		$(_22).datagrid("fixRowHeight", _23);
		function _27(_28) {
			var tr1 = _24.finder.getTr(_22, _28, "body", 1);
			var tr2 = _24.finder.getTr(_22, _28, "body", 2);
			tr1.css("height", "");
			tr2.css("height", "");
			var _29 = Math.max(tr1.height(), tr2.height());
			tr1.css("height", _29);
			tr2.css("height", _29);
		};
	};
	function _2a(_2b) {
		var dc = $.data(_2b, "datagrid").dc;
		var _2c = $.data(_2b, "treegrid").options;
		if (!_2c.rownumbers) {
			return;
		}
		dc.body1.find("div.datagrid-cell-rownumber").each(function(i) {
					$(this).html(i + 1);
				});
	};
	function _2d(_2e) {
		var dc = $.data(_2e, "datagrid").dc;
		var _2f = dc.body1.add(dc.body2);
		var _30 = ($.data(_2f[0], "events") || $._data(_2f[0], "events")).click[0].handler;
		dc.body1.add(dc.body2).bind("mouseover", function(e) {
			var tt = $(e.target);
			var tr = tt.closest("tr.datagrid-row");
			if (!tr.length) {
				return;
			}
			if (tt.hasClass("tree-hit")) {
				tt.hasClass("tree-expanded") ? tt
						.addClass("tree-expanded-hover") : tt
						.addClass("tree-collapsed-hover");
			}
			e.stopPropagation();
		}).bind("mouseout", function(e) {
			var tt = $(e.target);
			var tr = tt.closest("tr.datagrid-row");
			if (!tr.length) {
				return;
			}
			if (tt.hasClass("tree-hit")) {
				tt.hasClass("tree-expanded") ? tt
						.removeClass("tree-expanded-hover") : tt
						.removeClass("tree-collapsed-hover");
			}
			e.stopPropagation();
		}).unbind("click").bind("click", function(e) {
					var tt = $(e.target);
					var tr = tt.closest("tr.datagrid-row");
					if (!tr.length) {
						return;
					}
					if (tt.hasClass("tree-hit")) {
						_31(_2e, tr.attr("node-id"));
					} else {
						_30(e);
					}
					e.stopPropagation();
				});
	};
	function _32(_33, _34) {
		var _35 = $.data(_33, "treegrid").options;
		var tr1 = _35.finder.getTr(_33, _34, "body", 1);
		var tr2 = _35.finder.getTr(_33, _34, "body", 2);
		var _36 = $(_33).datagrid("getColumnFields", true).length
				+ (_35.rownumbers ? 1 : 0);
		var _37 = $(_33).datagrid("getColumnFields", false).length;
		_38(tr1, _36);
		_38(tr2, _37);
		function _38(tr, _39) {
			$("<tr class=\"treegrid-tr-tree\">"
					+ "<td style=\"border:0px\" colspan=\"" + _39 + "\">"
					+ "<div></div>" + "</td>" + "</tr>").insertAfter(tr);
		};
	};
	function _3a(_3b, _3c, _3d, _3e) {
		var _3f = $.data(_3b, "treegrid").options;
		var dc = $.data(_3b, "datagrid").dc;
		_3d = _3f.loadFilter.call(_3b, _3d, _3c);
		var _40 = _41(_3b, _3c);
		if (_40) {
			var _42 = _3f.finder.getTr(_3b, _3c, "body", 1);
			var _43 = _3f.finder.getTr(_3b, _3c, "body", 2);
			var cc1 = _42.next("tr.treegrid-tr-tree").children("td")
					.children("div");
			var cc2 = _43.next("tr.treegrid-tr-tree").children("td")
					.children("div");
		} else {
			var cc1 = dc.body1;
			var cc2 = dc.body2;
		}
		if (!_3e) {
			$.data(_3b, "treegrid").data = [];
			cc1.empty();
			cc2.empty();
		}
		if (_3f.view.onBeforeRender) {
			_3f.view.onBeforeRender.call(_3f.view, _3b, _3c, _3d);
		}
		_3f.view.render.call(_3f.view, _3b, cc1, true);
		_3f.view.render.call(_3f.view, _3b, cc2, false);
		if (_3f.showFooter) {
			_3f.view.renderFooter.call(_3f.view, _3b, dc.footer1, true);
			_3f.view.renderFooter.call(_3f.view, _3b, dc.footer2, false);
		}
		if (_3f.view.onAfterRender) {
			_3f.view.onAfterRender.call(_3f.view, _3b);
		}
		_3f.onLoadSuccess.call(_3b, _40, _3d);
		if (!_3c && _3f.pagination) {
			var _44 = $.data(_3b, "treegrid").total;
			var _45 = $(_3b).datagrid("getPager");
			if (_45.pagination("options").total != _44) {
				_45.pagination({
							total : _44
						});
			}
		}
		_21(_3b);
		_2a(_3b);
		$(_3b).treegrid("autoSizeColumn");
	};
	function _20(_46, _47, _48, _49, _4a) {
		var _4b = $.data(_46, "treegrid").options;
		var _4c = $(_46).datagrid("getPanel").find("div.datagrid-body");
		if (_48) {
			_4b.queryParams = _48;
		}
		var _4d = $.extend({}, _4b.queryParams);
		if (_4b.pagination) {
			$.extend(_4d, {
						page : _4b.pageNumber,
						rows : _4b.pageSize
					});
		}
		if (_4b.sortName) {
			$.extend(_4d, {
						sort : _4b.sortName,
						order : _4b.sortOrder
					});
		}
		var row = _41(_46, _47);
		if (_4b.onBeforeLoad.call(_46, row, _4d) == false) {
			return;
		}
		var _4e = _4c.find("tr[node-id=" + _47 + "] span.tree-folder");
		_4e.addClass("tree-loading");
		$(_46).treegrid("loading");
		var _4f = _4b.loader.call(_46, _4d, function(_50) {
					_4e.removeClass("tree-loading");
					$(_46).treegrid("loaded");
					_3a(_46, _47, _50, _49);
					if (_4a) {
						_4a();
					}
				}, function() {
					_4e.removeClass("tree-loading");
					$(_46).treegrid("loaded");
					_4b.onLoadError.apply(_46, arguments);
					if (_4a) {
						_4a();
					}
				});
		if (_4f == false) {
			_4e.removeClass("tree-loading");
			$(_46).treegrid("loaded");
		}
	};
	function _51(_52) {
		var _53 = _54(_52);
		if (_53.length) {
			return _53[0];
		} else {
			return null;
		}
	};
	function _54(_55) {
		return $.data(_55, "treegrid").data;
	};
	function _56(_57, _58) {
		var row = _41(_57, _58);
		if (row._parentId) {
			return _41(_57, row._parentId);
		} else {
			return null;
		}
	};
	function _26(_59, _5a) {
		var _5b = $.data(_59, "treegrid").options;
		var _5c = $(_59).datagrid("getPanel")
				.find("div.datagrid-view2 div.datagrid-body");
		var _5d = [];
		if (_5a) {
			_5e(_5a);
		} else {
			var _5f = _54(_59);
			for (var i = 0; i < _5f.length; i++) {
				_5d.push(_5f[i]);
				_5e(_5f[i][_5b.idField]);
			}
		}
		function _5e(_60) {
			var _61 = _41(_59, _60);
			if (_61 && _61.children) {
				for (var i = 0, len = _61.children.length; i < len; i++) {
					var _62 = _61.children[i];
					_5d.push(_62);
					_5e(_62[_5b.idField]);
				}
			}
		};
		return _5d;
	};
	function _63(_64) {
		var _65 = _66(_64);
		if (_65.length) {
			return _65[0];
		} else {
			return null;
		}
	};
	function _66(_67) {
		var _68 = [];
		var _69 = $(_67).datagrid("getPanel");
		_69
				.find("div.datagrid-view2 div.datagrid-body tr.datagrid-row-selected")
				.each(function() {
							var id = $(this).attr("node-id");
							_68.push(_41(_67, id));
						});
		return _68;
	};
	function _6a(_6b, _6c) {
		if (!_6c) {
			return 0;
		}
		var _6d = $.data(_6b, "treegrid").options;
		var _6e = $(_6b).datagrid("getPanel").children("div.datagrid-view");
		var _6f = _6e.find("div.datagrid-body tr[node-id=" + _6c + "]")
				.children("td[field=" + _6d.treeField + "]");
		return _6f.find("span.tree-indent,span.tree-hit").length;
	};
	function _41(_70, _71) {
		var _72 = $.data(_70, "treegrid").options;
		var _73 = $.data(_70, "treegrid").data;
		var cc = [_73];
		while (cc.length) {
			var c = cc.shift();
			for (var i = 0; i < c.length; i++) {
				var _74 = c[i];
				if (_74[_72.idField] == _71) {
					return _74;
				} else {
					if (_74["children"]) {
						cc.push(_74["children"]);
					}
				}
			}
		}
		return null;
	};
	function _75(_76, _77) {
		var _78 = $.data(_76, "treegrid").options;
		var row = _41(_76, _77);
		var tr = _78.finder.getTr(_76, _77);
		var hit = tr.find("span.tree-hit");
		if (hit.length == 0) {
			return;
		}
		if (hit.hasClass("tree-collapsed")) {
			return;
		}
		if (_78.onBeforeCollapse.call(_76, row) == false) {
			return;
		}
		hit.removeClass("tree-expanded tree-expanded-hover")
				.addClass("tree-collapsed");
		hit.next().removeClass("tree-folder-open");
		row.state = "closed";
		tr = tr.next("tr.treegrid-tr-tree");
		var cc = tr.children("td").children("div");
		if (_78.animate) {
			cc.slideUp("normal", function() {
						$(_76).treegrid("autoSizeColumn");
						_21(_76, _77);
						_78.onCollapse.call(_76, row);
					});
		} else {
			cc.hide();
			$(_76).treegrid("autoSizeColumn");
			_21(_76, _77);
			_78.onCollapse.call(_76, row);
		}
	};
	function _79(_7a, _7b) {
		var _7c = $.data(_7a, "treegrid").options;
		var tr = _7c.finder.getTr(_7a, _7b);
		var hit = tr.find("span.tree-hit");
		var row = _41(_7a, _7b);
		if (hit.length == 0) {
			return;
		}
		if (hit.hasClass("tree-expanded")) {
			return;
		}
		if (_7c.onBeforeExpand.call(_7a, row) == false) {
			return;
		}
		hit.removeClass("tree-collapsed tree-collapsed-hover")
				.addClass("tree-expanded");
		hit.next().addClass("tree-folder-open");
		var _7d = tr.next("tr.treegrid-tr-tree");
		if (_7d.length) {
			var cc = _7d.children("td").children("div");
			_7e(cc);
		} else {
			_32(_7a, row[_7c.idField]);
			var _7d = tr.next("tr.treegrid-tr-tree");
			var cc = _7d.children("td").children("div");
			cc.hide();
			_20(_7a, row[_7c.idField], {
						id : row[_7c.idField]
					}, true, function() {
						if (cc.is(":empty")) {
							_7d.remove();
						} else {
							_7e(cc);
						}
					});
		}
		function _7e(cc) {
			row.state = "open";
			if (_7c.animate) {
				cc.slideDown("normal", function() {
							$(_7a).treegrid("autoSizeColumn");
							_21(_7a, _7b);
							_7c.onExpand.call(_7a, row);
						});
			} else {
				cc.show();
				$(_7a).treegrid("autoSizeColumn");
				_21(_7a, _7b);
				_7c.onExpand.call(_7a, row);
			}
		};
	};
	function _31(_7f, _80) {
		var _81 = $.data(_7f, "treegrid").options;
		var tr = _81.finder.getTr(_7f, _80);
		var hit = tr.find("span.tree-hit");
		if (hit.hasClass("tree-expanded")) {
			_75(_7f, _80);
		} else {
			_79(_7f, _80);
		}
	};
	function _82(_83, _84) {
		var _85 = $.data(_83, "treegrid").options;
		var _86 = _26(_83, _84);
		if (_84) {
			_86.unshift(_41(_83, _84));
		}
		for (var i = 0; i < _86.length; i++) {
			_75(_83, _86[i][_85.idField]);
		}
	};
	function _87(_88, _89) {
		var _8a = $.data(_88, "treegrid").options;
		var _8b = _26(_88, _89);
		if (_89) {
			_8b.unshift(_41(_88, _89));
		}
		for (var i = 0; i < _8b.length; i++) {
			_79(_88, _8b[i][_8a.idField]);
		}
	};
	function _8c(_8d, _8e) {
		var _8f = $.data(_8d, "treegrid").options;
		var ids = [];
		var p = _56(_8d, _8e);
		while (p) {
			var id = p[_8f.idField];
			ids.unshift(id);
			p = _56(_8d, id);
		}
		for (var i = 0; i < ids.length; i++) {
			_79(_8d, ids[i]);
		}
	};
	function _90(_91, _92) {
		var _93 = $.data(_91, "treegrid").options;
		if (_92.parent) {
			var tr = _93.finder.getTr(_91, _92.parent);
			if (tr.next("tr.treegrid-tr-tree").length == 0) {
				_32(_91, _92.parent);
			}
			var _94 = tr.children("td[field=" + _93.treeField + "]")
					.children("div.datagrid-cell");
			var _95 = _94.children("span.tree-icon");
			if (_95.hasClass("tree-file")) {
				_95.removeClass("tree-file").addClass("tree-folder");
				var hit = $("<span class=\"tree-hit tree-expanded\"></span>")
						.insertBefore(_95);
				if (hit.prev().length) {
					hit.prev().remove();
				}
			}
		}
		_3a(_91, _92.parent, _92.data, true);
	};
	function _96(_97, _98) {
		var ref = _98.before || _98.after;
		var _99 = $.data(_97, "treegrid").options;
		var _9a = _56(_97, ref);
		_90(_97, {
					parent : (_9a ? _9a[_99.idField] : null),
					data : [_98.data]
				});
		_9b(true);
		_9b(false);
		_2a(_97);
		function _9b(_9c) {
			var _9d = _9c ? 1 : 2;
			var tr = _99.finder.getTr(_97, _98.data[_99.idField], "body", _9d);
			var _9e = tr.closest("table.datagrid-btable");
			tr = tr.parent().children();
			var _9f = _99.finder.getTr(_97, ref, "body", _9d);
			if (_98.before) {
				tr.insertBefore(_9f);
			} else {
				var sub = _9f.next("tr.treegrid-tr-tree");
				tr.insertAfter(sub.length ? sub : _9f);
			}
			_9e.remove();
		};
	};
	function _a0(_a1, _a2) {
		var _a3 = $.data(_a1, "treegrid").options;
		var tr = _a3.finder.getTr(_a1, _a2);
		tr.next("tr.treegrid-tr-tree").remove();
		tr.remove();
		var _a4 = del(_a2);
		if (_a4) {
			if (_a4.children.length == 0) {
				tr = _a3.finder.getTr(_a1, _a4[_a3.idField]);
				tr.next("tr.treegrid-tr-tree").remove();
				var _a5 = tr.children("td[field=" + _a3.treeField + "]")
						.children("div.datagrid-cell");
				_a5.find(".tree-icon").removeClass("tree-folder")
						.addClass("tree-file");
				_a5.find(".tree-hit").remove();
				$("<span class=\"tree-indent\"></span>").prependTo(_a5);
			}
		}
		_2a(_a1);
		function del(id) {
			var cc;
			var _a6 = _56(_a1, _a2);
			if (_a6) {
				cc = _a6.children;
			} else {
				cc = $(_a1).treegrid("getData");
			}
			for (var i = 0; i < cc.length; i++) {
				if (cc[i][_a3.idField] == id) {
					cc.splice(i, 1);
					break;
				}
			}
			return _a6;
		};
	};
	$.fn.treegrid = function(_a7, _a8) {
		if (typeof _a7 == "string") {
			var _a9 = $.fn.treegrid.methods[_a7];
			if (_a9) {
				return _a9(this, _a8);
			} else {
				return this.datagrid(_a7, _a8);
			}
		}
		_a7 = _a7 || {};
		return this.each(function() {
					var _aa = $.data(this, "treegrid");
					if (_aa) {
						$.extend(_aa.options, _a7);
					} else {
						$.data(this, "treegrid", {
									options : $.extend({},
											$.fn.treegrid.defaults,
											$.fn.treegrid.parseOptions(this),
											_a7),
									data : []
								});
					}
					_5(this);
					_20(this);
					_2d(this);
				});
	};
	$.fn.treegrid.methods = {
		options : function(jq) {
			return $.data(jq[0], "treegrid").options;
		},
		resize : function(jq, _ab) {
			return jq.each(function() {
						$(this).datagrid("resize", _ab);
					});
		},
		fixRowHeight : function(jq, _ac) {
			return jq.each(function() {
						_21(this, _ac);
					});
		},
		loadData : function(jq, _ad) {
			return jq.each(function() {
						_3a(this, null, _ad);
					});
		},
		reload : function(jq, id) {
			return jq.each(function() {
						if (id) {
							var _ae = $(this).treegrid("find", id);
							if (_ae.children) {
								_ae.children.splice(0, _ae.children.length);
							}
							var _af = $(this).datagrid("getPanel")
									.find("div.datagrid-body");
							var tr = _af.find("tr[node-id=" + id + "]");
							tr.next("tr.treegrid-tr-tree").remove();
							var hit = tr.find("span.tree-hit");
							hit
									.removeClass("tree-expanded tree-expanded-hover")
									.addClass("tree-collapsed");
							_79(this, id);
						} else {
							_20(this, null, {});
						}
					});
		},
		reloadFooter : function(jq, _b0) {
			return jq.each(function() {
						var _b1 = $.data(this, "treegrid").options;
						var dc = $.data(this, "datagrid").dc;
						if (_b0) {
							$.data(this, "treegrid").footer = _b0;
						}
						if (_b1.showFooter) {
							_b1.view.renderFooter.call(_b1.view, this,
									dc.footer1, true);
							_b1.view.renderFooter.call(_b1.view, this,
									dc.footer2, false);
							if (_b1.view.onAfterRender) {
								_b1.view.onAfterRender.call(_b1.view, this);
							}
							$(this).treegrid("fixRowHeight");
						}
					});
		},
		loading : function(jq) {
			return jq.each(function() {
						$(this).datagrid("loading");
					});
		},
		loaded : function(jq) {
			return jq.each(function() {
						$(this).datagrid("loaded");
					});
		},
		getData : function(jq) {
			return $.data(jq[0], "treegrid").data;
		},
		getFooterRows : function(jq) {
			return $.data(jq[0], "treegrid").footer;
		},
		getRoot : function(jq) {
			return _51(jq[0]);
		},
		getRoots : function(jq) {
			return _54(jq[0]);
		},
		getParent : function(jq, id) {
			return _56(jq[0], id);
		},
		getChildren : function(jq, id) {
			return _26(jq[0], id);
		},
		getSelected : function(jq) {
			return _63(jq[0]);
		},
		getSelections : function(jq) {
			return _66(jq[0]);
		},
		getLevel : function(jq, id) {
			return _6a(jq[0], id);
		},
		find : function(jq, id) {
			return _41(jq[0], id);
		},
		isLeaf : function(jq, id) {
			var _b2 = $.data(jq[0], "treegrid").options;
			var tr = _b2.finder.getTr(jq[0], id);
			var hit = tr.find("span.tree-hit");
			return hit.length == 0;
		},
		select : function(jq, id) {
			return jq.each(function() {
						$(this).datagrid("selectRow", id);
					});
		},
		unselect : function(jq, id) {
			return jq.each(function() {
						$(this).datagrid("unselectRow", id);
					});
		},
		collapse : function(jq, id) {
			return jq.each(function() {
						_75(this, id);
					});
		},
		expand : function(jq, id) {
			return jq.each(function() {
						_79(this, id);
					});
		},
		toggle : function(jq, id) {
			return jq.each(function() {
						_31(this, id);
					});
		},
		collapseAll : function(jq, id) {
			return jq.each(function() {
						_82(this, id);
					});
		},
		expandAll : function(jq, id) {
			return jq.each(function() {
						_87(this, id);
					});
		},
		expandTo : function(jq, id) {
			return jq.each(function() {
						_8c(this, id);
					});
		},
		append : function(jq, _b3) {
			return jq.each(function() {
						_90(this, _b3);
					});
		},
		insert : function(jq, _b4) {
			return jq.each(function() {
						_96(this, _b4);
					});
		},
		remove : function(jq, id) {
			return jq.each(function() {
						_a0(this, id);
					});
		},
		pop : function(jq, id) {
			var row = jq.treegrid("find", id);
			jq.treegrid("remove", id);
			return row;
		},
		refresh : function(jq, id) {
			return jq.each(function() {
						var _b5 = $.data(this, "treegrid").options;
						_b5.view.refreshRow.call(_b5.view, this, id);
					});
		},
		update : function(jq, _b6) {
			return jq.each(function() {
						var _b7 = $.data(this, "treegrid").options;
						_b7.view.updateRow
								.call(_b7.view, this, _b6.id, _b6.row);
					});
		},
		beginEdit : function(jq, id) {
			return jq.each(function() {
						$(this).datagrid("beginEdit", id);
						$(this).treegrid("fixRowHeight", id);
					});
		},
		endEdit : function(jq, id) {
			return jq.each(function() {
						$(this).datagrid("endEdit", id);
					});
		},
		cancelEdit : function(jq, id) {
			return jq.each(function() {
						$(this).datagrid("cancelEdit", id);
					});
		}
	};
	$.fn.treegrid.parseOptions = function(_b8) {
		return $.extend({}, $.fn.datagrid.parseOptions(_b8), $.parser
						.parseOptions(_b8, ["treeField", {
											animate : "boolean"
										}]));
	};
	var _b9 = $.extend({}, $.fn.datagrid.defaults.view, {
		render : function(_ba, _bb, _bc) {
			var _bd = $.data(_ba, "treegrid").options;
			var _be = $(_ba).datagrid("getColumnFields", _bc);
			var _bf = $.data(_ba, "datagrid").rowIdPrefix;
			if (_bc) {
				if (!(_bd.rownumbers || (_bd.frozenColumns && _bd.frozenColumns.length))) {
					return;
				}
			}
			var _c0 = this;
			var _c1 = _c2(_bc, this.treeLevel, this.treeNodes);
			$(_bb).append(_c1.join(""));
			function _c2(_c3, _c4, _c5) {
				var _c6 = ["<table class=\"datagrid-btable\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tbody>"];
				for (var i = 0; i < _c5.length; i++) {
					var row = _c5[i];
					if (row.state != "open" && row.state != "closed") {
						row.state = "open";
					}
					var _c7 = _bd.rowStyler ? _bd.rowStyler.call(_ba, row) : "";
					var _c8 = _c7 ? "style=\"" + _c7 + "\"" : "";
					var _c9 = _bf + "-" + (_c3 ? 1 : 2) + "-"
							+ row[_bd.idField];
					_c6.push("<tr id=\"" + _c9
							+ "\" class=\"datagrid-row\" node-id="
							+ row[_bd.idField] + " " + _c8 + ">");
					_c6 = _c6.concat(_c0.renderRow.call(_c0, _ba, _be, _c3,
							_c4, row));
					_c6.push("</tr>");
					if (row.children && row.children.length) {
						var tt = _c2(_c3, _c4 + 1, row.children);
						var v = row.state == "closed" ? "none" : "block";
						_c6
								.push("<tr class=\"treegrid-tr-tree\"><td style=\"border:0px\" colspan="
										+ (_be.length + (_bd.rownumbers ? 1 : 0))
										+ "><div style=\"display:" + v + "\">");
						_c6 = _c6.concat(tt);
						_c6.push("</div></td></tr>");
					}
				}
				_c6.push("</tbody></table>");
				return _c6;
			};
		},
		renderFooter : function(_ca, _cb, _cc) {
			var _cd = $.data(_ca, "treegrid").options;
			var _ce = $.data(_ca, "treegrid").footer || [];
			var _cf = $(_ca).datagrid("getColumnFields", _cc);
			var _d0 = ["<table class=\"datagrid-ftable\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tbody>"];
			for (var i = 0; i < _ce.length; i++) {
				var row = _ce[i];
				row[_cd.idField] = row[_cd.idField] || ("foot-row-id" + i);
				_d0.push("<tr class=\"datagrid-row\" node-id="
						+ row[_cd.idField] + ">");
				_d0.push(this.renderRow.call(this, _ca, _cf, _cc, 0, row));
				_d0.push("</tr>");
			}
			_d0.push("</tbody></table>");
			$(_cb).html(_d0.join(""));
		},
		renderRow : function(_d1, _d2, _d3, _d4, row) {
			var _d5 = $.data(_d1, "treegrid").options;
			var cc = [];
			if (_d3 && _d5.rownumbers) {
				cc
						.push("<td class=\"datagrid-td-rownumber\"><div class=\"datagrid-cell-rownumber\">0</div></td>");
			}
			for (var i = 0; i < _d2.length; i++) {
				var _d6 = _d2[i];
				var col = $(_d1).datagrid("getColumnOption", _d6);
				if (col) {
					var _d7 = col.styler
							? (col.styler(row[_d6], row) || "")
							: "";
					var _d8 = col.hidden
							? "style=\"display:none;" + _d7 + "\""
							: (_d7 ? "style=\"" + _d7 + "\"" : "");
					cc.push("<td field=\"" + _d6 + "\" " + _d8 + ">");
					if (col.checkbox) {
						var _d8 = "";
					} else {
						var _d8 = "";
						_d8 += "text-align:" + (col.align || "left") + ";";
						if (!_d5.nowrap) {
							_d8 += "white-space:normal;height:auto;";
						} else {
							if (_d5.autoRowHeight) {
								_d8 += "height:auto;";
							}
						}
					}
					cc.push("<div style=\"" + _d8 + "\" ");
					if (col.checkbox) {
						cc.push("class=\"datagrid-cell-check ");
					} else {
						cc.push("class=\"datagrid-cell " + col.cellClass);
					}
					cc.push("\">");
					if (col.checkbox) {
						if (row.checked) {
							cc
									.push("<input type=\"checkbox\" checked=\"checked\"");
						} else {
							cc.push("<input type=\"checkbox\"");
						}
						cc.push(" name=\"" + _d6 + "\" value=\""
								+ (row[_d6] != undefined ? row[_d6] : "")
								+ "\"/>");
					} else {
						var val = null;
						if (col.formatter) {
							val = col.formatter(row[_d6], row);
						} else {
							val = row[_d6];
						}
						if (_d6 == _d5.treeField) {
							for (var j = 0; j < _d4; j++) {
								cc.push("<span class=\"tree-indent\"></span>");
							}
							if (row.state == "closed") {
								cc
										.push("<span class=\"tree-hit tree-collapsed\"></span>");
								cc.push("<span class=\"tree-icon tree-folder "
										+ (row.iconCls ? row.iconCls : "")
										+ "\"></span>");
							} else {
								if (row.children && row.children.length) {
									cc
											.push("<span class=\"tree-hit tree-expanded\"></span>");
									cc
											.push("<span class=\"tree-icon tree-folder tree-folder-open "
													+ (row.iconCls
															? row.iconCls
															: "")
													+ "\"></span>");
								} else {
									cc
											.push("<span class=\"tree-indent\"></span>");
									cc
											.push("<span class=\"tree-icon tree-file "
													+ (row.iconCls
															? row.iconCls
															: "")
													+ "\"></span>");
								}
							}
							cc.push("<span class=\"tree-title\">" + val
									+ "</span>");
						} else {
							cc.push(val);
						}
					}
					cc.push("</div>");
					cc.push("</td>");
				}
			}
			return cc.join("");
		},
		refreshRow : function(_d9, id) {
			this.updateRow.call(this, _d9, id, {});
		},
		updateRow : function(_da, id, row) {
			var _db = $.data(_da, "treegrid").options;
			var _dc = $(_da).treegrid("find", id);
			$.extend(_dc, row);
			var _dd = $(_da).treegrid("getLevel", id) - 1;
			var _de = _db.rowStyler ? _db.rowStyler.call(_da, _dc) : "";
			function _df(_e0) {
				var _e1 = $(_da).treegrid("getColumnFields", _e0);
				var tr = _db.finder.getTr(_da, id, "body", (_e0 ? 1 : 2));
				var _e2 = tr.find("div.datagrid-cell-rownumber").html();
				var _e3 = tr
						.find("div.datagrid-cell-check input[type=checkbox]")
						.is(":checked");
				tr.html(this.renderRow(_da, _e1, _e0, _dd, _dc));
				tr.attr("style", _de || "");
				tr.find("div.datagrid-cell-rownumber").html(_e2);
				if (_e3) {
					tr.find("div.datagrid-cell-check input[type=checkbox]")
							._propAttr("checked", true);
				}
			};
			_df.call(this, true);
			_df.call(this, false);
			$(_da).treegrid("fixRowHeight", id);
		},
		onBeforeRender : function(_e4, _e5, _e6) {
			if (!_e6) {
				return false;
			}
			var _e7 = $.data(_e4, "treegrid").options;
			if (_e6.length == undefined) {
				if (_e6.footer) {
					$.data(_e4, "treegrid").footer = _e6.footer;
				}
				if (_e6.total) {
					$.data(_e4, "treegrid").total = _e6.total;
				}
				_e6 = this.transfer(_e4, _e5, _e6.rows);
			} else {
				function _e8(_e9, _ea) {
					for (var i = 0; i < _e9.length; i++) {
						var row = _e9[i];
						row._parentId = _ea;
						if (row.children && row.children.length) {
							_e8(row.children, row[_e7.idField]);
						}
					}
				};
				_e8(_e6, _e5);
			}
			var _eb = _41(_e4, _e5);
			if (_eb) {
				if (_eb.children) {
					_eb.children = _eb.children.concat(_e6);
				} else {
					_eb.children = _e6;
				}
			} else {
				$.data(_e4, "treegrid").data = $.data(_e4, "treegrid").data
						.concat(_e6);
			}
			if (!_e7.remoteSort) {
				this.sort(_e4, _e6);
			}
			this.treeNodes = _e6;
			this.treeLevel = $(_e4).treegrid("getLevel", _e5);
		},
		sort : function(_ec, _ed) {
			var _ee = $.data(_ec, "treegrid").options;
			var opt = $(_ec).treegrid("getColumnOption", _ee.sortName);
			if (opt) {
				var _ef = opt.sorter || function(a, b) {
					return (a > b ? 1 : -1);
				};
				_f0(_ed);
			}
			function _f0(_f1) {
				_f1.sort(function(r1, r2) {
							return _ef(r1[_ee.sortName], r2[_ee.sortName])
									* (_ee.sortOrder == "asc" ? 1 : -1);
						});
				for (var i = 0; i < _f1.length; i++) {
					var _f2 = _f1[i].children;
					if (_f2 && _f2.length) {
						_f0(_f2);
					}
				}
			};
		},
		transfer : function(_f3, _f4, _f5) {
			var _f6 = $.data(_f3, "treegrid").options;
			var _f7 = [];
			for (var i = 0; i < _f5.length; i++) {
				_f7.push(_f5[i]);
			}
			var _f8 = [];
			for (var i = 0; i < _f7.length; i++) {
				var row = _f7[i];
				if (!_f4) {
					if (!row._parentId) {
						_f8.push(row);
						_3(_f7, row);
						i--;
					}
				} else {
					if (row._parentId == _f4) {
						_f8.push(row);
						_3(_f7, row);
						i--;
					}
				}
			}
			var _f9 = [];
			for (var i = 0; i < _f8.length; i++) {
				_f9.push(_f8[i]);
			}
			while (_f9.length) {
				var _fa = _f9.shift();
				for (var i = 0; i < _f7.length; i++) {
					var row = _f7[i];
					if (row._parentId == _fa[_f6.idField]) {
						if (_fa.children) {
							_fa.children.push(row);
						} else {
							_fa.children = [row];
						}
						_f9.push(row);
						_3(_f7, row);
						i--;
					}
				}
			}
			return _f8;
		}
	});
	$.fn.treegrid.defaults = $.extend({}, $.fn.datagrid.defaults, {
		treeField : null,
		animate : false,
		singleSelect : true,
		view : _b9,
		loader : function(_fb, _fc, _fd) {
			var _fe = $(this).treegrid("options");
			if (!_fe.url) {
				return false;
			}
			$.ajax({
						type : _fe.method,
						url : _fe.url,
						data : _fb,
						dataType : "json",
						success : function(_ff) {
							_fc(_ff);
						},
						error : function() {
							_fd.apply(this, arguments);
						}
					});
		},
		loadFilter : function(data, _100) {
			return data;
		},
		finder : {
			getTr : function(_101, id, type, _102) {
				type = type || "body";
				_102 = _102 || 0;
				var dc = $.data(_101, "datagrid").dc;
				if (_102 == 0) {
					var opts = $.data(_101, "treegrid").options;
					var tr1 = opts.finder.getTr(_101, id, type, 1);
					var tr2 = opts.finder.getTr(_101, id, type, 2);
					return tr1.add(tr2);
				} else {
					if (type == "body") {
						var tr = $("#" + $.data(_101, "datagrid").rowIdPrefix
								+ "-" + _102 + "-" + id);
						if (!tr.length) {
							tr = (_102 == 1 ? dc.body1 : dc.body2)
									.find("tr[node-id=" + id + "]");
						}
						return tr;
					} else {
						if (type == "footer") {
							return (_102 == 1 ? dc.footer1 : dc.footer2)
									.find("tr[node-id=" + id + "]");
						} else {
							if (type == "selected") {
								return (_102 == 1 ? dc.body1 : dc.body2)
										.find("tr.datagrid-row-selected");
							} else {
								if (type == "last") {
									return (_102 == 1 ? dc.body1 : dc.body2)
											.find("tr:last[node-id]");
								} else {
									if (type == "allbody") {
										return (_102 == 1 ? dc.body1 : dc.body2)
												.find("tr[node-id]");
									} else {
										if (type == "allfooter") {
											return (_102 == 1
													? dc.footer1
													: dc.footer2)
													.find("tr[node-id]");
										}
									}
								}
							}
						}
					}
				}
			},
			getRow : function(_103, id) {
				return $(_103).treegrid("find", id);
			}
		},
		onBeforeLoad : function(row, _104) {
		},
		onLoadSuccess : function(row, data) {
		},
		onLoadError : function() {
		},
		onBeforeCollapse : function(row) {
		},
		onCollapse : function(row) {
		},
		onBeforeExpand : function(row) {
		},
		onExpand : function(row) {
		},
		onClickRow : function(row) {
		},
		onDblClickRow : function(row) {
		},
		onClickCell : function(_105, row) {
		},
		onDblClickCell : function(_106, row) {
		},
		onContextMenu : function(e, row) {
		},
		onBeforeEdit : function(row) {
		},
		onAfterEdit : function(row, _107) {
		},
		onCancelEdit : function(row) {
		}
	});
})(jQuery);
